package com.googlecode.archimedes.filegen.model;

/**
 * <p>
 * A concrete member is a "true" member of an entity. It pretty much is the exact same as the
 * abstract Member class, but is a sub-class so it can be easily differentiated from the other
 * Member classes (like VirtualMember)
 * </p>
 * 
 * <p>Created: Feb 9, 2005</p>
 * 
 * @author Erik Gustavson
 * @version $Id: ConcreteMember.java 2893 2006-09-05 15:08:24 +0000 (Tue, 05 Sep 2006) erik $
 */
public class ConcreteMember extends Member {

    /**
     * A default value to use for this member. It is a string literal that is dumped into the templates.
     */
    private String  defaultValue;

    /**
     * Whether or not to generate an index for this member in the DB. Useful for attributes that are frequently
     * looked up, like a username or a type's code.
     */
    private boolean indexed = false;

    /**
     * The Default constructor
     */
    public ConcreteMember() {
        super();
    }

    /**
     * Returns the defaultValue.
     *
     * @return String value of defaultValue
     */
    public String getDefaultValue() {
        return defaultValue;
    }

    /**
     * Sets the defaultValue
     * @param defaultValue The defaultValue to set.
     */
    public void setDefaultValue(String defaultValue) {
        this.defaultValue = defaultValue;
    }

    /**
     * Returns the indexed.
     *
     * @return boolean value of indexed
     */
    public boolean getIndexed() {
        return indexed;
    }

    /**
     * Sets the indexed
     * @param indexed The indexed to set.
     */
    public void setIndexed(boolean indexed) {
        this.indexed = indexed;
    }

}